Design and Implementation of Bytecode-based Java Slicing System
نویسندگان
چکیده
Program slice is a set of statements that affect the value of variable v in a statement s. In order to calculate a program slice, we must know the dependence relations between statements in the program. Program slicing techniques are roughly divided into two categories, static slicing and dynamic slicing, and we have proposed DC slicing technique which uses both static and dynamic information. In this paper, we propose a method of constructing a DC slicing system for Java programs. Java programs have many elements which are dynamically determined at the time of execution, so the DC slicing technique is effective in the analysis of Java programs. To construct the system, we have extended Java Virtual Machine for extraction of dynamic information. We have applied the system to several sample program to evaluate our approach.
منابع مشابه
The Role of IPC in the Component-Based Operating System JX
In currently used operating systems hardware support is used to ensure the memory protection. The communication between protection domains is obviously slower than simple method invocations. Robust component-based services need a flexible system design and fast communication mechanism between different units of protection. We describe the Java operating system JX that uses the type safety of th...
متن کاملAspect-Oriented Design and Implementation of a Java Bytecode Analyzer Framework
We propose a new type of Java bytecode analyzer framework based on aspect-oriented design and programming. We also observe that aspect-oriented design and programming improve separation of concerns of many of the characteristics of the design, including extensibility, type safety, and execution efficiency of its design and implementation, when compared to existing analyzer frameworks based on o...
متن کاملDependence Analysis of Java Bytecode
Understanding program dependencies in a computer program is essential for many software engineering tasks such as program understanding, testing, debugging, reverse engineering, and maintenance. In this paper, we present an approach to dependence analysis of Java bytecode, and discuss some applications of our technique, which include Java bytecode slicing, understanding, and testing.
متن کاملFunctional Java Bytecode
We describe the design and implementation of λJVM, a functional representation of Java bytecode that makes data flow explicit, verification simple, and that is well-suited for translation into lower-level representations such as those used in optimizing compilers. It is a good alternative to stack-based Java bytecode for virtual machines or ahead-oftime compilers which optimize methods and prod...
متن کاملCOSTA: Design and Implementation of a Cost and Termination Analyzer for Java Bytecode
This paper describes the architecture of costa, an abstract interpretation based cost and termination analyzer for Java bytecode. The system receives as input a bytecode program, (a choice of) a resource of interest and tries to obtain an upper bound of the resource consumption of the program. costa provides several non-trivial notions of cost, as the consumption of the heap, the number of byte...
متن کامل